package ar.com.nexoweb.actualidadbasquet.entities;

import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import ar.com.nexoweb.actualidadbasquet.NoticiaActivity;
import ar.com.nexoweb.actualidadbasquet.R;
import ar.com.nexoweb.actualidadbasquet.adapters.ListadoNoticiasAdapter;
import ar.com.nexoweb.actualidadbasquet.data.AsyncTaskCompletionListener;
import ar.com.nexoweb.actualidadbasquet.network.RssFeedAsyncTask;
import ar.com.nexoweb.actualidadbasquet.utility.Utility;

public class ListadoNoticias extends Activity implements AsyncTaskCompletionListener {
	private RelativeLayout layout;  // Layout contenedor
	private ListView listview;      // Listado
	private ImageView imgRecargar;  // Botón (imágen) para recargar los feeds
	private TextView txtTitulo;     // Título que encabeza la activity
	private String url = "http://www.nexoweb.com.ar/feed"; // url por defecto
	
	Context ctx;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.item_listado_rss);
		ctx = getApplicationContext();
		
		layout = (RelativeLayout) findViewById(R.id.layoutListado);
		listview = (ListView) findViewById(R.id.rssfeed_listview);
		txtTitulo = (TextView) findViewById(R.id.txtTituloRSS);
		imgRecargar = (ImageView) findViewById(R.id.imgRecargar);

		if (getIntent().hasExtra("titulo")) {
			txtTitulo.setText(getIntent().getStringExtra("titulo"));
		}

		if (getIntent().hasExtra("fondo")) {
			layout.setBackgroundResource(getIntent().getExtras().getInt("fondo", R.drawable.fondo_generico));
		}
		
		if (getIntent().hasExtra("url")) {
			url = getIntent().getStringExtra("url");
		}
		
		
		
		
		// Botón recargar
		imgRecargar.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				actualizarFeed();
			}
		});
		
		// Actualizo el feed al abrir la activity
		actualizarFeed();
	}
	
	@Override
	public void onTaskComplete(List<Noticia> result) {
		
		// Adapter
		final ListadoNoticiasAdapter _adapter= 
				new ListadoNoticiasAdapter(ListadoNoticias.this, result);
		listview.setAdapter(_adapter);
		
		listview.setOnItemClickListener( new OnItemClickListener() {
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				
				Noticia noti = (Noticia) _adapter.getItem(position);
				
				Intent intent = new Intent();
				intent.setClass(view.getContext(), NoticiaActivity.class);
				intent.putExtra("noticia", noti);
				startActivity(intent);
			}
		});
	}
	
	private void actualizarFeed() {
		if(Utility.determineConnectivity(ListadoNoticias.this))
			new RssFeedAsyncTask(this).execute(url);
		else
			Toast.makeText(this, "No hay conexión a internet", Toast.LENGTH_SHORT).show();
	}

}
